namespace Helion.Maps.Specials;

public static class ActionSpecialHelper
{
    /// <summary>
    /// Checks whether a case-insensitive name is an action special name.
    /// </summary>
    /// <param name="name">The name to check.</param>
    /// <returns>True if it is, false if not.</returns>
    public static bool Exists(string name)
    {
        switch (name.ToUpper())
        {
        case "ACS_EXECUTE":
            return true;
        case "ACS_EXECUTEALWAYS":
            return true;
        case "ACS_EXECUTEWITHRESULT":
            return true;
        case "ACS_LOCKEDEXECUTE":
            return true;
        case "ACS_LOCKEDEXECUTEDOOR":
            return true;
        case "ACS_SUSPEND":
            return true;
        case "ACS_TERMINATE":
            return true;
        case "AUTOSAVE":
            return true;
        case "CEILING_CRUSHANDRAISEA":
            return true;
        case "CEILING_CRUSHANDRAISE":
            return true;
        case "CEILING_CRUSHANDRAISEDIST":
            return true;
        case "CEILING_CRUSHANDRAISESILENTA":
            return true;
        case "CEILING_CRUSHANDRAISESILENTDIST":
            return true;
        case "CEILING_CRUSHRAISEANDSTAYA":
            return true;
        case "CEILING_CRUSHRAISEANDSTAY":
            return true;
        case "CEILING_CRUSHRAISEANDSTAYSILA":
            return true;
        case "CEILING_CRUSHSTOP":
            return true;
        case "CEILING_LOWERANDCRUSH":
            return true;
        case "CEILING_LOWERANDCRUSHDIST":
            return true;
        case "CEILING_LOWERBYTEXTURE":
            return true;
        case "CEILING_LOWERBYVALUE":
            return true;
        case "CEILING_LOWERBYVALUETIMES8":
            return true;
        case "CEILING_LOWERINSTANT":
            return true;
        case "CEILING_LOWERTOFLOOR":
            return true;
        case "CEILING_LOWERTOHIGHESTFLOOR":
            return true;
        case "CEILING_LOWERTOLOWEST":
            return true;
        case "CEILING_LOWERTONEAREST":
            return true;
        case "CEILING_MOVETOVALUEANDCRUSH":
            return true;
        case "CEILING_MOVETOVALUE":
            return true;
        case "CEILING_MOVETOVALUETIMES8":
            return true;
        case "CEILING_RAISEBYTEXTURE":
            return true;
        case "CEILING_RAISEBYVALUE":
            return true;
        case "CEILING_RAISEBYVALUETIMES8":
            return true;
        case "CEILING_RAISEINSTANT":
            return true;
        case "CEILING_RAISETOHIGHEST":
            return true;
        case "CEILING_RAISETOHIGHESTFLOOR":
            return true;
        case "CEILING_RAISETOLOWEST":
            return true;
        case "CEILING_RAISETONEAREST":
            return true;
        case "CEILING_STOP":
            return true;
        case "CEILING_TOFLOORINSTANT":
            return true;
        case "CEILING_TOHIGHESTINSTANT":
            return true;
        case "CEILING_WAGGLE":
            return true;
        case "CHANGECAMERA":
            return true;
        case "CHANGESKILL":
            return true;
        case "CLEARFORCEFIELD":
            return true;
        case "DAMAGETHING":
            return true;
        case "DOOR_ANIMATEDCLOSE":
            return true;
        case "DOOR_ANIMATED":
            return true;
        case "DOOR_CLOSE":
            return true;
        case "DOOR_CLOSEWAITOPEN":
            return true;
        case "DOOR_LOCKEDRAISE":
            return true;
        case "DOOR_OPEN":
            return true;
        case "DOOR_RAISE":
            return true;
        case "DOOR_WAITCLOSE":
            return true;
        case "DOOR_WAITRAISE":
            return true;
        case "ELEVATOR_LOWERTONEAREST":
            return true;
        case "ELEVATOR_MOVETOFLOOR":
            return true;
        case "ELEVATOR_RAISETONEAREST":
            return true;
        case "EXIT_NORMAL":
            return true;
        case "EXIT_SECRET":
            return true;
        case "EXTRAFLOOR_LIGHTONLY":
            return true;
        case "FLOORANDCEILING_LOWERBYVALUE":
            return true;
        case "FLOORANDCEILING_LOWERRAISE":
            return true;
        case "FLOORANDCEILING_RAISEBYVALUE":
            return true;
        case "FLOOR_CRUSHSTOP":
            return true;
        case "FLOOR_DONUT":
            return true;
        case "FLOOR_LOWERBYTEXTURE":
            return true;
        case "FLOOR_LOWERBYVALUE":
            return true;
        case "FLOOR_LOWERBYVALUETIMES8":
            return true;
        case "FLOOR_LOWERINSTANT":
            return true;
        case "FLOOR_LOWERTOHIGHESTEE":
            return true;
        case "FLOOR_LOWERTOHIGHEST":
            return true;
        case "FLOOR_LOWERTOLOWESTCEILING":
            return true;
        case "FLOOR_LOWERTOLOWEST":
            return true;
        case "FLOOR_LOWERTOLOWESTTXTY":
            return true;
        case "FLOOR_LOWERTONEAREST":
            return true;
        case "FLOOR_MOVETOVALUEANDCRUSH":
            return true;
        case "FLOOR_MOVETOVALUE":
            return true;
        case "FLOOR_MOVETOVALUETIMES8":
            return true;
        case "FLOOR_RAISEANDCRUSHDOOM":
            return true;
        case "FLOOR_RAISEANDCRUSH":
            return true;
        case "FLOOR_RAISEBYTEXTURE":
            return true;
        case "FLOOR_RAISEBYVALUE":
            return true;
        case "FLOOR_RAISEBYVALUETIMES8":
            return true;
        case "FLOOR_RAISEBYVALUETXTY":
            return true;
        case "FLOOR_RAISEINSTANT":
            return true;
        case "FLOOR_RAISETOCEILING":
            return true;
        case "FLOOR_RAISETOHIGHEST":
            return true;
        case "FLOOR_RAISETOLOWESTCEILING":
            return true;
        case "FLOOR_RAISETOLOWEST":
            return true;
        case "FLOOR_RAISETONEAREST":
            return true;
        case "FLOOR_STOP":
            return true;
        case "FLOOR_TOCEILINGINSTANT":
            return true;
        case "FLOOR_TRANSFERNUMERIC":
            return true;
        case "FLOOR_TRANSFERTRIGGER":
            return true;
        case "FLOOR_WAGGLE":
            return true;
        case "FORCEFIELD":
            return true;
        case "FS_EXECUTE":
            return true;
        case "GENERIC_CEILING":
            return true;
        case "GENERIC_CRUSHER2":
            return true;
        case "GENERIC_CRUSHER":
            return true;
        case "GENERIC_DOOR":
            return true;
        case "GENERIC_FLOOR":
            return true;
        case "GENERIC_LIFT":
            return true;
        case "GENERIC_STAIRS":
            return true;
        case "GLASSBREAK":
            return true;
        case "HEALTHING":
            return true;
        case "LIGHT_CHANGETOVALUE":
            return true;
        case "LIGHT_FADE":
            return true;
        case "LIGHT_FLICKER":
            return true;
        case "LIGHT_FORCELIGHTNING":
            return true;
        case "LIGHT_GLOW":
            return true;
        case "LIGHT_LOWERBYVALUE":
            return true;
        case "LIGHT_MAXNEIGHBOR":
            return true;
        case "LIGHT_MINNEIGHBOR":
            return true;
        case "LIGHT_RAISEBYVALUE":
            return true;
        case "LIGHT_STOP":
            return true;
        case "LIGHT_STROBEDOOM":
            return true;
        case "LIGHT_STROBE":
            return true;
        case "LINE_ALIGNCEILING":
            return true;
        case "LINE_ALIGNFLOOR":
            return true;
        case "LINE_HORIZON":
            return true;
        case "LINE_MIRROR":
            return true;
        case "LINE_SETBLOCKING":
            return true;
        case "LINE_SETIDENTIFICATION":
            return true;
        case "LINE_SETPORTAL":
            return true;
        case "LINE_SETPORTALTARGET":
            return true;
        case "LINE_SETTEXTUREOFFSET":
            return true;
        case "LINE_SETTEXTURESCALE":
            return true;
        case "NOISEALERT":
            return true;
        case "PILLAR_BUILDANDCRUSH":
            return true;
        case "PILLAR_BUILD":
            return true;
        case "PILLAR_OPEN":
            return true;
        case "PLANE_ALIGN":
            return true;
        case "PLANE_COPY":
            return true;
        case "PLAT_DOWNBYVALUE":
            return true;
        case "PLAT_DOWNWAITUPSTAYLIP":
            return true;
        case "PLAT_DOWNWAITUPSTAY":
            return true;
        case "PLAT_PERPETUALRAISELIP":
            return true;
        case "PLAT_PERPETUALRAISE":
            return true;
        case "PLAT_RAISEANDSTAYTX0":
            return true;
        case "PLAT_STOP":
            return true;
        case "PLAT_TOGGLECEILING":
            return true;
        case "PLAT_UPBYVALUE":
            return true;
        case "PLAT_UPBYVALUESTAYTX":
            return true;
        case "PLAT_UPNEARESTWAITDOWNSTAY":
            return true;
        case "PLAT_UPWAITDOWNSTAY":
            return true;
        case "POINTPUSH_SETFORCE":
            return true;
        case "POLYOBJ_DOORSLIDE":
            return true;
        case "POLYOBJ_DOORSWING":
            return true;
        case "POLYOBJ_EXPLICITLINE":
            return true;
        case "POLYOBJ_MOVE":
            return true;
        case "POLYOBJ_MOVETIMES8":
            return true;
        case "POLYOBJ_MOVETO":
            return true;
        case "POLYOBJ_MOVETOSPOT":
            return true;
        case "POLYOBJ_OR_MOVE":
            return true;
        case "POLYOBJ_OR_MOVETIMES8":
            return true;
        case "POLYOBJ_OR_MOVETO":
            return true;
        case "POLYOBJ_OR_MOVETOSPOT":
            return true;
        case "POLYOBJ_OR_ROTATELEFT":
            return true;
        case "POLYOBJ_OR_ROTATERIGHT":
            return true;
        case "POLYOBJ_ROTATELEFT":
            return true;
        case "POLYOBJ_ROTATERIGHT":
            return true;
        case "POLYOBJ_STARTLINE":
            return true;
        case "POLYOBJ_STOP":
            return true;
        case "RADIUS_QUAKE":
            return true;
        case "SCROLL_CEILING":
            return true;
        case "SCROLL_FLOOR":
            return true;
        case "SCROLL_TEXTURE_BOTH":
            return true;
        case "SCROLL_TEXTURE_DOWN":
            return true;
        case "SCROLL_TEXTURE_LEFT":
            return true;
        case "SCROLL_TEXTURE_MODEL":
            return true;
        case "SCROLL_TEXTURE_OFFSETS":
            return true;
        case "SCROLL_TEXTURE_RIGHT":
            return true;
        case "SCROLL_TEXTURE_UP":
            return true;
        case "SCROLL_WALL":
            return true;
        case "SECTOR_ATTACH3DMIDTEX":
            return true;
        case "SECTOR_CHANGEFLAGS":
            return true;
        case "SECTOR_CHANGESOUND":
            return true;
        case "SECTOR_COPYSCROLLER":
            return true;
        case "SECTOR_SET3DFLOOR":
            return true;
        case "SECTOR_SETCEILINGGLOW":
            return true;
        case "SECTOR_SETCEILINGPANNING":
            return true;
        case "SECTOR_SETCEILINGSCALE2":
            return true;
        case "SECTOR_SETCEILINGSCALE":
            return true;
        case "SECTOR_SETCOLOR":
            return true;
        case "SECTOR_SETCONTENTS":
            return true;
        case "SECTOR_SETCURRENT":
            return true;
        case "SECTOR_SETDAMAGE":
            return true;
        case "SECTOR_SETFADE":
            return true;
        case "SECTOR_SETFLOORGLOW":
            return true;
        case "SECTOR_SETFLOORPANNING":
            return true;
        case "SECTOR_SETFLOORSCALE2":
            return true;
        case "SECTOR_SETFLOORSCALE":
            return true;
        case "SECTOR_SETFRICTION":
            return true;
        case "SECTOR_SETGRAVITY":
            return true;
        case "SECTOR_SETLINK":
            return true;
        case "SECTOR_SETPLANEREFLECTION":
            return true;
        case "SECTOR_SETPORTAL":
            return true;
        case "SECTOR_SETROTATION":
            return true;
        case "SECTOR_SETTRANSLUCENT":
            return true;
        case "SECTOR_SETWIND":
            return true;
        case "SENDTOCOMMUNICATOR":
            return true;
        case "SETGLOBALFOGPARAMETER":
            return true;
        case "SETPLAYERPROPERTY":
            return true;
        case "STAIRS_BUILDDOWNDOOM":
            return true;
        case "STAIRS_BUILDDOWNDOOMSYNC":
            return true;
        case "STAIRS_BUILDDOWN":
            return true;
        case "STAIRS_BUILDDOWNSYNC":
            return true;
        case "STAIRS_BUILDUPDOOMCRUSH":
            return true;
        case "STAIRS_BUILDUPDOOM":
            return true;
        case "STAIRS_BUILDUPDOOMSYNC":
            return true;
        case "STAIRS_BUILDUP":
            return true;
        case "STAIRS_BUILDUPSYNC":
            return true;
        case "STARTCONVERSATION":
            return true;
        case "STATIC_INIT":
            return true;
        case "TELEPORT_ENDGAME":
            return true;
        case "TELEPORTGROUP":
            return true;
        case "TELEPORTINSECTOR":
            return true;
        case "TELEPORT_LINE":
            return true;
        case "TELEPORT_NEWMAP":
            return true;
        case "TELEPORT_NOFOG":
            return true;
        case "TELEPORT_NOSTOP":
            return true;
        case "TELEPORTOTHER":
            return true;
        case "TELEPORT":
            return true;
        case "TELEPORT_ZOMBIECHANGER":
            return true;
        case "THING_ACTIVATE":
            return true;
        case "THING_CHANGETID":
            return true;
        case "THING_DAMAGE":
            return true;
        case "THING_DEACTIVATE":
            return true;
        case "THING_DESTROY":
            return true;
        case "THING_HATE":
            return true;
        case "THING_MOVE":
            return true;
        case "THING_PROJECTILEAIMED":
            return true;
        case "THING_PROJECTILEGRAVITY":
            return true;
        case "THING_PROJECTILEINTERCEPT":
            return true;
        case "THING_PROJECTILE":
            return true;
        case "THING_RAISE":
            return true;
        case "THING_REMOVE":
            return true;
        case "THING_SETCONVERSATION":
            return true;
        case "THING_SETGOAL":
            return true;
        case "THING_SETSPECIAL":
            return true;
        case "THING_SETTRANSLATION":
            return true;
        case "THING_SPAWNFACING":
            return true;
        case "THING_SPAWNNOFOG":
            return true;
        case "THING_SPAWN":
            return true;
        case "THING_STOP":
            return true;
        case "THRUSTTHING":
            return true;
        case "THRUSTTHINGZ":
            return true;
        case "TRANSFER_CEILINGLIGHT":
            return true;
        case "TRANSFER_FLOORLIGHT":
            return true;
        case "TRANSFER_HEIGHTS":
            return true;
        case "TRANSFER_WALLLIGHT":
            return true;
        case "TRANSLUCENTLINE":
            return true;
        case "USEPUZZLEITEM":
            return true;
        default:
            return false;
        }
    }
}
